package cn.iocoder.yudao.module.cmt.controller.admin.person.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;

@Schema(description = "管理后台 - 志愿者/师资注册申请 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PersonVolunteerApplyRespVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("ID")
    private Long id;

    @Schema(description = "社区ID", example = "1")
    @ExcelProperty("社区ID")
    private Long communityId;

    @Schema(description = "申请会员ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("申请会员ID")
    private Long userId;

    @Schema(description = "关联人员ID", example = "1")
    @ExcelProperty("关联人员ID")
    private Long personId;

    @Schema(description = "申请类型：1志愿者 2师资", example = "1")
    @ExcelProperty("申请类型")
    private Integer applyType;

    @Schema(description = "真实姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @ExcelProperty("真实姓名")
    private String realName;

    @Schema(description = "性别：1男 2女", example = "1")
    @ExcelProperty("性别")
    private Integer gender;

    @Schema(description = "年龄", example = "25")
    @ExcelProperty("年龄")
    private Integer age;

    @Schema(description = "联系电话", requiredMode = Schema.RequiredMode.REQUIRED, example = "13800138000")
    @ExcelProperty("联系电话")
    private String phone;

    @Schema(description = "身份证号", example = "110101199001011234")
    @ExcelProperty("身份证号")
    private String idCard;

    @Schema(description = "学历", example = "本科")
    @ExcelProperty("学历")
    private String education;

    @Schema(description = "职业", example = "教师")
    @ExcelProperty("职业")
    private String occupation;

    @Schema(description = "特长技能(JSON数组)", example = "[\"心理咨询\",\"教育培训\"]")
    @ExcelProperty("特长技能")
    private String skills;

    @Schema(description = "身份证正面", example = "http://xxx.com/id_front.jpg")
    @ExcelProperty("身份证正面")
    private String idCardFront;

    @Schema(description = "身份证反面", example = "http://xxx.com/id_back.jpg")
    @ExcelProperty("身份证反面")
    private String idCardBack;

    @Schema(description = "资格证书(JSON数组)", example = "[\"http://xxx.com/cert1.jpg\"]")
    @ExcelProperty("资格证书")
    private String certificate;

    @Schema(description = "申请理由", example = "希望通过志愿服务帮助社区居民")
    @ExcelProperty("申请理由")
    private String applyReason;

    @Schema(description = "可服务时间", example = "周末全天")
    @ExcelProperty("可服务时间")
    private String availableTime;

    @Schema(description = "审核状态：0待审核 1通过 2拒绝", example = "0")
    @ExcelProperty("审核状态")
    private Integer auditStatus;

    @Schema(description = "审核人ID", example = "1")
    @ExcelProperty("审核人ID")
    private Long auditUserId;

    @Schema(description = "审核时间")
    @ExcelProperty("审核时间")
    private LocalDateTime auditTime;

    @Schema(description = "审核备注", example = "审核通过")
    @ExcelProperty("审核备注")
    private String auditRemark;

    @Schema(description = "状态：0停用 1启用", example = "1")
    @ExcelProperty("状态")
    private Integer status;

    @Schema(description = "备注", example = "备注信息")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}
